65 - 6.2.4 Speicher: Einleitung zur Speicherverwaltung [ID:18327]
50 von 111 angezeigt

Nun also die Speicherwaltung. In einer kurzen Einleitung werde ich die wichtigen Strategien,

die Politik einer Speicherwaltung kurz erwähnen und in dem Zusammenhang dann eben auch etwas über

die Symbiose zwischen Maschinenprogrammen und Betriebssystemen zusammen mit der

Speicherwaltung erläutern, bevor ich dann in die Militär zur Speicherzuteilung komme und dann

im Abschluss noch die Speichervirtualisierung bei kurz anreiße. Wichtige Aufgaben der Speicherwaltung

sind im Wesentlichen darin halt Buch darüber zu führen, welche Speicherbereiche von einem

Prozess belegt sind und diese Bereiche, die der Prozess belegt, eben auch entsprechend seine

Adressraumgröße auszulegen. Hierzu muss man also schon wissen, wie groß wenigstens der statische

Prozessadressraum wäre, um zu wissen, wie viel Speicherbereiche brauchen mindestens im Hauptspeicher,

damit so ein Prozess nachher überhaupt stattfinden kann. Es ist eine zentrale Aufgabe eines jeden

Betriebssystems. Da haben wir die Platzierungsstrategie, die im Wesentlichen die Frage

beantwortet, wo denn im Hauptspeicher überhaupt Platz ist, um ein Programm oder auch nur Teile

eines Programms platzieren, also ablegen zu können. Wo ist freier Speicher? Dann gibt es eine zusätzliche

Aufgabe, das ist die Speichervirtualisierung. Ich hatte ja vorher schon gesagt, dass das ein

optionales Merkmal eines Betriebssystems ist. Wir müssen jetzt nicht denken, dass immer jedes

Betriebssystem eine Speichervirtualisierung durchführt, nur deshalb, weil Linux, MacOS und

Windows eine Speichervirtualisierung machen. Es ist eine optionale Maßnahme eines Betriebssystems,

was letztendlich nur dann erforderlich ist, wenn für den Grad an Mehrprogrammbetrieb zu wenig

Hauptspeicher verfügbar ist. Also wenn wir zu viel Maschinenprogramme zugleich laufen lassen

wollen in einem Rechnungssystem und wir vor den Problemen stehen, dass für die Gesamtheit

dieser Maschinenprogramme einfach nicht genügend Hauptspeicher zur Verfügung steht, dann ist

Speichervirtualisierung eine sinnvolle Maßnahme, um praktisch diesen Mehrprogrammbetrieb vernünftig

gestalten zu können. Nun, in diesem Kontext der Speichervirtualisierung gibt es einerseits

die Ladestrategie, die nämlich festlegt, wann ein bestimmtes Datum oder Teile eines Programms

in den Hauptspeicher gelegt werden sollen. Wir haben ja schon gehört, dass bei virtuellem Speicher

bei weitem nicht alle Objekte, die einem Prozess zur Verfügung stehen, in seinem Adressraum adressiert

werden können, dass die dann wirklich permanent während der Laufzeit des Prozesses im Hauptspeicher

liegen müssen, sondern ein Teil davon kann in der sogenannten Swap Area liegen. Und dann kommt genau

die Ladestrategie ran, die dann letztendlich festlegt, zu welchem Zeitpunkt dann praktisch

ein gewünschtes, ein relevantes Objekt in den Hauptspeicher platziert werden muss, damit der

Prozess überhaupt stattfinden kann. Das kann man in dem Moment machen, wo man den Zugriff

durchführt auf dieses Objekt oder man macht es im Voraus. Und dann gibt es noch die Ersetzungsstrategie,

die letztendlich die Frage beantwortet, welches Datum Hauptspeicher zu ersetzen ist. Wenn wir eine

Speicherüberbelegung haben, weil wir zu viele Programme, zu viele Maschinenprogramme zugleich im

Rechensystem laufen lassen wollen und wir zu wenig Hauptspeicher für alle diese Programme

besitzen, werden wir immer nur einen Teil der Programme vorrätig haben. Und dann kann es trotzdem

in der Situation dazu kommen, dass bei einer Speicheranforderung wir feststellen, dass diese

Anforderung jetzt nicht befriedigt werden kann, weil der gesamte Hauptspeicher komplett belegt ist.

Und dann kann man eine Lösung verfolgen, die einfach der Frage nach geht, okay, wo ist denn

möglicherweise ein belegter Speicherbereich vor einem Prozess, der aber jetzt und auch vielleicht

in der nächsten Zeit von diesem Prozess nicht genutzt wird. Und diesen Bereich, den kann man

nutzen, den kann man diesen Prozess jetzt entziehen und einem anderen Prozess, nämlich derjenige,

der jetzt gerade diese Speicheranforderung gestellt hat, denn zuordnen. Damit sehen wir eben auch,

dass Speicher, Hauptspeicher eine entziehbare Ressource ist, eine wiederwennbare Ressource,

die einem Prozess gegebenenfalls genau dann, wenn wir Speichervirtualisierung im System drin haben,

entziehen kann. Nun, diese Aufgaben, die sind zum Teil voneinander abhängig. Sie profitieren

zumindest voneinander. Wenn wir uns mal eine Situation betrachten, dass wir sagen, okay,

wir wollen eben etwas platzieren, wir haben eine stellende Speicheranforderung, da muss im

speicherfreier Platz dafür gefunden werden. Also wenn wir jetzt einen Prozess erzeugen oder wir

wollen eine Variable oder eine größere Datenstruktur anlegen, dann muss man im Hauptspeicher dafür den

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

00:11:59 Min

Aufnahmedatum

2020-06-22

Hochgeladen am

2020-06-22 12:56:33

Sprache

de-DE

Tags

module programmstruktur Variablen Datentypen Preprozessor Gültigkeit
Einbetten
Wordpress FAU Plugin
iFrame
Teilen